# controllers/home_controller.py
import time  # 用于模拟耗时操作

class HomeController:
    """首页业务逻辑控制器，处理数据提交"""
    def __init__(self, event_bus):
        self.event_bus = event_bus
        self.init_events()  # 绑定事件
    
    def init_events(self):
        """绑定数据提交请求事件"""
        self.event_bus.data_submit_request.connect(self.handle_data_submit)
    
    def handle_data_submit(self, data):
        """处理数据提交逻辑（模拟验证、保存）"""
        try:
            # 1. 模拟业务验证（如长度检查）
            content = data.get("content", "")
            if len(content) < 3:
                raise ValueError("数据长度不能少于3个字符")
            
            # 2. 模拟耗时操作（如接口调用、数据库保存）
            time.sleep(1)  # 模拟网络延迟
            
            # 3. 提交成功，发送结果事件
            self.event_bus.data_submit_result.emit(
                True, f"✅ 数据提交成功：{content}"
            )
        
        except Exception as e:
            # 提交失败，发送错误信息
            self.event_bus.data_submit_result.emit(
                False, f"❌ 提交失败：{str(e)}"
            )